package main

import "fmt"

func main() {
	// map 为引用类型 必须 初始化后 才能使用
	// map[键类型]值类型
	m1 := make(map[string]string, 5)

	m1["name"] = "shikong"
	m1["age"] = "22"

	fmt.Printf("m1 => %T %+v\n", m1, m1)

	// 第一个变量接收 对应key 的 value值
	// 第二个变量接收 一个布尔值 若 key存在 则为 true 否则为 false
	val, ok := m1["test"]
	fmt.Printf("val: %#v ok: %v\n", val, ok)

	fmt.Println("=========================================================")

	// map 的 遍历
	for k, v := range m1 {
		fmt.Printf("k: %s v: %s\n", k, v)
	}

	fmt.Println("=========================================================")

	// 删除
	// delete 按照指定的键将 元素 从 map 中删除 若 map 为 nil 或 无此元素, delete不进行操作
	delete(m1, "name")
	fmt.Printf("m1 => %T %+v\n", m1, m1)
}
